package vista;


//import java.awt.Color;
//import javax.swing.BorderFactory;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import modelo.Usuario;


import controlador.TelefoniaMovil;

public class ModificarUsuario extends JFrame {
	private JLabel nombre;
	private JLabel apellido;
	private JLabel domicilio;
	private JLabel telefono;
	private JLabel dni;
	private JTextField nombreTxt;
	private JTextField apellidoTxt;
	private JTextField domicilioTxt;
	private JTextField telefonoTxt;
	private JTextField dniTxt;
	
	private JButton guardarButton;
	private JButton cancelarButton;
//	private ListarUsuario lu;
	
	
	private int tamanoLabelX = 60;
	private int tamanoLabelY = 28;
	private int tamanoTextFieldX = 250;
	private int tamanoTextFieldY = 28;
	
	
	private TelefoniaMovil tm;
	
	public static void main(String[] args) {
		
		AltaUsuario inst = new AltaUsuario();
		inst.setVisible(true);
	}
	
	
	public ModificarUsuario(TelefoniaMovil tm, Usuario usuario){
		initGUI(usuario);
		this.tm =  tm;
	}

	public void validarNumero(java.awt.event.KeyEvent evt){
    	int caracter=(int)evt.getKeyChar();
    	if(((caracter < '0') || (caracter > '9')) &&(caracter != java.awt.event.KeyEvent.VK_BACK_SPACE))
    	{
	    	evt.consume();
	    	JOptionPane.showMessageDialog(null,"No puede ingresar letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
    	}
    	
	}
	
	private boolean validarDatosVacio(){
		if (dniTxt.getText().length() == 0){
			JOptionPane.showMessageDialog(null, "El campo Dni no puede estar vacio", "Alta Usuario", JOptionPane.ERROR_MESSAGE);
			return false;
		}else{
			if (nombreTxt.getText().length() == 0){
				JOptionPane.showMessageDialog(null, "El campo Nombre no puede estar vacio", "Alta Usuario", JOptionPane.ERROR_MESSAGE);
				return false;
			}else{
				if (apellidoTxt.getText().length() == 0){
					JOptionPane.showMessageDialog(null, "El campo Apellido no puede estar vacio", "Alta Usuario", JOptionPane.ERROR_MESSAGE);
					return false;	
					
				}else{
					if (domicilioTxt.getText().length()== 0){
						JOptionPane.showMessageDialog(null, "El campo Domicilio no puede estar vacio", "Alta Usuario", JOptionPane.ERROR_MESSAGE);
						return false;
					}else{
						if (telefonoTxt.getText().length()== 0){
							JOptionPane.showMessageDialog(null, "El campo Telefono no puede estar vacio", "Alta Usuario", JOptionPane.ERROR_MESSAGE);
							return false;
						}	
					}
						
				}
					
			}
				
		}
		
		return true;
	}
	
	private void initGUI(Usuario usuario) {
		try{
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			dni =  new JLabel();
			dni.setText("Dni:");
			dni.setBounds(20, 5, tamanoLabelX, tamanoLabelY);
			getContentPane().add(dni);
			
			nombre =  new JLabel();
			nombre.setText("Nombre:");
			nombre.setBounds(20, 38, tamanoLabelX, tamanoLabelY);
			getContentPane().add(nombre);
			
			apellido =  new JLabel();
			apellido.setText("Apellido:");
			apellido.setBounds(20, 71, tamanoLabelX, tamanoLabelY);//38+28+5
			getContentPane().add(apellido);
			
			domicilio =  new JLabel();
			domicilio.setText("Domicilio:");
			domicilio.setBounds(20, 104 , tamanoLabelX, tamanoLabelY);//71+5+28
			getContentPane().add(domicilio);
			
			telefono =  new JLabel();
			telefono.setText("Telefono:");
			telefono.setBounds(20, 137 , tamanoLabelX, tamanoLabelY); //71+28+5
			getContentPane().add(telefono);
			
			
			dniTxt =  new JTextField(Integer.toString(usuario.getDni()));
			dniTxt.setBounds(85, 5 , tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(dniTxt);
			dniTxt.setEnabled(false);
			dniTxt.addKeyListener(new java.awt.event.KeyAdapter() {
	            public void keyTyped(java.awt.event.KeyEvent evt) {
	            	validarNumero(evt);
	            }
	        });
			
			nombreTxt = new JTextField(usuario.getNombre());
			nombreTxt.setBounds( 85 , 38, tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(nombreTxt);
			
			apellidoTxt =  new JTextField(usuario.getApellido());
			apellidoTxt.setBounds(85, 71 , tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(apellidoTxt);
			
			domicilioTxt =  new JTextField(usuario.getDomicilio());
			domicilioTxt.setBounds(85, 104 , tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(domicilioTxt);
			
			
			telefonoTxt =  new JTextField(Integer.toString(usuario.getTelefono()));
			telefonoTxt.setBounds(85, 137 , tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(telefonoTxt);
			telefonoTxt.addKeyListener(new java.awt.event.KeyAdapter() {
		            public void keyTyped(java.awt.event.KeyEvent evt) {
		            	validarNumero(evt);
		            }
		        });
			
			
			guardarButton = new JButton();
			getContentPane().add(guardarButton);
			guardarButton.setText("Guardar");
			guardarButton.setBounds(100, 175, 90, 30);
			guardarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					
					boolean validar = validarDatosVacio();
					
					if (validar){
						boolean modif = 	tm.modificarUsuario(Integer.parseInt(dniTxt.getText()), nombreTxt.getText(), apellidoTxt.getText(), domicilioTxt.getText(), Integer.parseInt(telefonoTxt.getText()));
						
						if (modif == true) {
							JOptionPane.showMessageDialog(null, "Se Guardo satisfactoriamente el Usuario", "Alta Usuario", JOptionPane.INFORMATION_MESSAGE);
//							dniTxt.setText("");
//							nombreTxt.setText("");
//							apellidoTxt.setText("");
//							domicilioTxt.setText("");
//							telefonoTxt.setText("");
							ListarUsuario listar= new ListarUsuario(tm, "Modificar");
							listar.setVisible(true);
							dispose();
						} else
							JOptionPane.showMessageDialog(null, "Se produjo un error al Modificar el Usuario", "Alta Usuario", JOptionPane.ERROR_MESSAGE);

					}
					

				}
			});
			
			cancelarButton = new JButton();
			getContentPane().add(cancelarButton);
			cancelarButton.setText("Cancelar");
			cancelarButton.setBounds(245, 175, 90, 30);
			cancelarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					ListarUsuario listar= new ListarUsuario(tm, "Modificar");
					listar.setVisible(true);
					dispose();
				}
			});
			
			setTitle("Modificar Usuario");
			pack();
			setSize(360, 250);
			setResizable(false);
		}catch(Exception e) {
			e.printStackTrace();
			
		}

	}
	
}


